"""
生成器
优点： 可以节省内存
缺点： 惰性求职，只能取一次值，不能使用索引，只能逐个取值

写法：元组推导式，函数式写法（yield）
"""

data1 = [i for i in range(10000)]
print(data1.__sizeof__())
data2 = (i for i in range(10000))
# print(data2.__sizeof__())
print(next(data2))

#函数式写法（yield）
def my_fun():
    yield 10
    yield 20
    return 100,200
data3 = my_fun()
try:
    while True:
        print(next(data3))
except StopIteration as e:
    print(f"异常{e}")
